package com.ruoyi.iot.domain;

import java.io.Serializable;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
public class Property  implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;

    private Long productId;

    private String productKey;

    /**
     * 看PropertyType.java 内容
     */
    @NotBlank(message = "类型不能为空")
    private String type;

    /**
     * Specification.java 对象的json字符串，用于前端展示和校验数据格式
     */
    private String specJson;

    @NotNull(message = "通道ID不能为空")
    private Long channelId;

    private String channelKey;

    /**
     * up：上行
     * down：下行
     * both；双向
     */
    @NotNull(message = "上行下行不能为空")
    private String direction;

    /**
     * 是否必填，0：非必填 1：必填
     */
    private int required;

    /**
     * 设备上报的字段标识
     */
    @NotBlank(message = "属性标识不能为空")
    private String key;

    /**
     * 文字展示名称
     */
    @NotBlank(message = "名称不能为空")
    private String name;

    private int sort;

    private String icon;

    private String defaultValue;

    /**
     * 单位，如：℃，m/s
     */
    private String unit;

    /**
     * 乐观锁版本号
     */
    private Long  version;
}